
package com.derbysoft.synxisadapter.commons.dto.synxis;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for TPA_Extensions complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="TPA_Extensions">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Security" type="{http://www.opentravel.org/OTA/2003/05}SecurityType" minOccurs="0"/>
 *         &lt;element name="GuaranteeDetails" type="{http://www.opentravel.org/OTA/2003/05}GuaranteeDetails" minOccurs="0"/>
 *         &lt;element name="SourceOfBusiness" type="{http://www.opentravel.org/OTA/2003/05}SourceOfBusiness" minOccurs="0"/>
 *         &lt;element name="MarketSegment" type="{http://www.opentravel.org/OTA/2003/05}MarketSegment" minOccurs="0"/>
 *         &lt;element name="BasicPropertyInfo" type="{http://www.opentravel.org/OTA/2003/05}BasicPropertyInfoType" minOccurs="0"/>
 *         &lt;element name="Warnings" type="{http://www.opentravel.org/OTA/2003/05}ArrayOfWarning" minOccurs="0"/>
 *         &lt;element name="Success" type="{http://www.opentravel.org/OTA/2003/05}Success" minOccurs="0"/>
 *         &lt;element name="ResStatus" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="WrittenConfInst" type="{http://www.opentravel.org/OTA/2003/05}WrittenConfInst" minOccurs="0"/>
 *         &lt;element name="NightlyRate" type="{http://www.opentravel.org/OTA/2003/05}NightlyRate" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="DiscountedNightlyRate" type="{http://www.opentravel.org/OTA/2003/05}DiscountedNightlyRate" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="TotalType" type="{http://www.opentravel.org/OTA/2003/05}TotalType" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TPA_Extensions", propOrder = {
    "security",
    "guaranteeDetails",
    "sourceOfBusiness",
    "marketSegment",
    "basicPropertyInfo",
    "warnings",
    "success",
    "resStatus",
    "writtenConfInst",
    "nightlyRate",
    "discountedNightlyRate",
    "totalType"
})
@XmlSeeAlso({
    AvailabilityTpaExtensions.class
})
public class TPAExtensions {

    @XmlElement(name = "Security")
    protected SecurityType security;
    @XmlElement(name = "GuaranteeDetails")
    protected GuaranteeDetails guaranteeDetails;
    @XmlElement(name = "SourceOfBusiness")
    protected SourceOfBusiness sourceOfBusiness;
    @XmlElement(name = "MarketSegment")
    protected MarketSegment marketSegment;
    @XmlElement(name = "BasicPropertyInfo")
    protected BasicPropertyInfoType basicPropertyInfo;
    @XmlElement(name = "Warnings")
    protected ArrayOfWarning warnings;
    @XmlElement(name = "Success")
    protected Success success;
    @XmlElement(name = "ResStatus")
    protected String resStatus;
    @XmlElement(name = "WrittenConfInst")
    protected WrittenConfInst writtenConfInst;
    @XmlElement(name = "NightlyRate")
    protected List<NightlyRate> nightlyRate;
    @XmlElement(name = "DiscountedNightlyRate")
    protected List<DiscountedNightlyRate> discountedNightlyRate;
    @XmlElement(name = "TotalType")
    protected TotalType totalType;

    /**
     * Gets the value of the security property.
     * 
     * @return
     *     possible object is
     *     {@link SecurityType }
     *     
     */
    public SecurityType getSecurity() {
        return security;
    }

    /**
     * Sets the value of the security property.
     * 
     * @param value
     *     allowed object is
     *     {@link SecurityType }
     *     
     */
    public void setSecurity(SecurityType value) {
        this.security = value;
    }

    /**
     * Gets the value of the guaranteeDetails property.
     * 
     * @return
     *     possible object is
     *     {@link GuaranteeDetails }
     *     
     */
    public GuaranteeDetails getGuaranteeDetails() {
        return guaranteeDetails;
    }

    /**
     * Sets the value of the guaranteeDetails property.
     * 
     * @param value
     *     allowed object is
     *     {@link GuaranteeDetails }
     *     
     */
    public void setGuaranteeDetails(GuaranteeDetails value) {
        this.guaranteeDetails = value;
    }

    /**
     * Gets the value of the sourceOfBusiness property.
     * 
     * @return
     *     possible object is
     *     {@link SourceOfBusiness }
     *     
     */
    public SourceOfBusiness getSourceOfBusiness() {
        return sourceOfBusiness;
    }

    /**
     * Sets the value of the sourceOfBusiness property.
     * 
     * @param value
     *     allowed object is
     *     {@link SourceOfBusiness }
     *     
     */
    public void setSourceOfBusiness(SourceOfBusiness value) {
        this.sourceOfBusiness = value;
    }

    /**
     * Gets the value of the marketSegment property.
     * 
     * @return
     *     possible object is
     *     {@link MarketSegment }
     *     
     */
    public MarketSegment getMarketSegment() {
        return marketSegment;
    }

    /**
     * Sets the value of the marketSegment property.
     * 
     * @param value
     *     allowed object is
     *     {@link MarketSegment }
     *     
     */
    public void setMarketSegment(MarketSegment value) {
        this.marketSegment = value;
    }

    /**
     * Gets the value of the basicPropertyInfo property.
     * 
     * @return
     *     possible object is
     *     {@link BasicPropertyInfoType }
     *     
     */
    public BasicPropertyInfoType getBasicPropertyInfo() {
        return basicPropertyInfo;
    }

    /**
     * Sets the value of the basicPropertyInfo property.
     * 
     * @param value
     *     allowed object is
     *     {@link BasicPropertyInfoType }
     *     
     */
    public void setBasicPropertyInfo(BasicPropertyInfoType value) {
        this.basicPropertyInfo = value;
    }

    /**
     * Gets the value of the warnings property.
     * 
     * @return
     *     possible object is
     *     {@link ArrayOfWarning }
     *     
     */
    public ArrayOfWarning getWarnings() {
        return warnings;
    }

    /**
     * Sets the value of the warnings property.
     * 
     * @param value
     *     allowed object is
     *     {@link ArrayOfWarning }
     *     
     */
    public void setWarnings(ArrayOfWarning value) {
        this.warnings = value;
    }

    /**
     * Gets the value of the success property.
     * 
     * @return
     *     possible object is
     *     {@link Success }
     *     
     */
    public Success getSuccess() {
        return success;
    }

    /**
     * Sets the value of the success property.
     * 
     * @param value
     *     allowed object is
     *     {@link Success }
     *     
     */
    public void setSuccess(Success value) {
        this.success = value;
    }

    /**
     * Gets the value of the resStatus property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getResStatus() {
        return resStatus;
    }

    /**
     * Sets the value of the resStatus property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setResStatus(String value) {
        this.resStatus = value;
    }

    /**
     * Gets the value of the writtenConfInst property.
     * 
     * @return
     *     possible object is
     *     {@link WrittenConfInst }
     *     
     */
    public WrittenConfInst getWrittenConfInst() {
        return writtenConfInst;
    }

    /**
     * Sets the value of the writtenConfInst property.
     * 
     * @param value
     *     allowed object is
     *     {@link WrittenConfInst }
     *     
     */
    public void setWrittenConfInst(WrittenConfInst value) {
        this.writtenConfInst = value;
    }

    /**
     * Gets the value of the nightlyRate property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the nightlyRate property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getNightlyRate().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link NightlyRate }
     * 
     * 
     */
    public List<NightlyRate> getNightlyRate() {
        if (nightlyRate == null) {
            nightlyRate = new ArrayList<NightlyRate>();
        }
        return this.nightlyRate;
    }

    /**
     * Gets the value of the discountedNightlyRate property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the discountedNightlyRate property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getDiscountedNightlyRate().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DiscountedNightlyRate }
     * 
     * 
     */
    public List<DiscountedNightlyRate> getDiscountedNightlyRate() {
        if (discountedNightlyRate == null) {
            discountedNightlyRate = new ArrayList<DiscountedNightlyRate>();
        }
        return this.discountedNightlyRate;
    }

    /**
     * Gets the value of the totalType property.
     * 
     * @return
     *     possible object is
     *     {@link TotalType }
     *     
     */
    public TotalType getTotalType() {
        return totalType;
    }

    /**
     * Sets the value of the totalType property.
     * 
     * @param value
     *     allowed object is
     *     {@link TotalType }
     *     
     */
    public void setTotalType(TotalType value) {
        this.totalType = value;
    }

}
